package com.yfp.device.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hy.corecode.idgen.WFGIdGenerator;
import com.yfp.device.domain.OrderCombo;
import com.yfp.device.mapper.*;
import com.yfp.device.service.ClientService;
import com.yfp.device.service.OrderComboService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
* @author admin
* @description 针对表【order_combo】的数据库操作Service实现
* @createDate 2024-06-18 17:21:54
*/
@Service
@Slf4j
public class OrderComboServiceImpl extends ServiceImpl<OrderComboMapper, OrderCombo> implements OrderComboService {

    @Resource
    private OrderComboMapper orderComboMapper;
    @Resource
    private ClientService clientService;
    @Resource
    private MachineMapper machineMapper;
    @Resource
    private OrderDetailMapper orderDetailMapper;
    @Resource
    private OrderListMapper orderListMapper;
    @Resource
    private WFGIdGenerator wfgIdGenerator;
    @Resource
    private MqConsumerMapper mqConsumerMapper;

    @Override
    public OrderCombo selectByid(String orderId) {
        return orderComboMapper.selectById(orderId);
    }

    @Override
    public void updateOrderStatus(OrderCombo orderCombo) {

        // 修改
        orderComboMapper.updateOrderStatus(orderCombo);

//        //
//
//        OrderCombo oc = orderComboMapper.selectById(orderCombo.getOrderId());
//
//        OrderDataSynchronizationDTO ods = new OrderDataSynchronizationDTO();
//
//        if (oc != null) {
//            if (!oc.getUserId().equals(oc.getMachineId())) {
//                // 根据id获取用户信息
//                Client client = clientService.getById(oc.getUserId());
//                // 用户昵称
//                ods.setNickname(client.getNickName());
//                // 手机号
//                ods.setMobileNumber(client.getMobile());
//            } else {
//                // 获取设备信息
//                Machine machine = machineMapper.getById(oc.getMachineId());
//                String machineName = "";
//                if (machine == null){
//                    machineName = "设备";
//                }else {
//                    machineName = machine.getMachineName();
//                }
//                ods.setNickname(machineName);
//            }
//
//            ods.setOrderCombo(oc);
//            // 获取订单详情列表
//            List<OrderDetail> detailList = orderDetailMapper.getByPayOrderId(oc.getOrderId());
//            ods.setOrderDetailList(detailList);
//
//            // 获取订单信息
//            OrderList orderList = orderListMapper.selectById(oc.getOrderId());
//            if (orderList.getPayTime() != null) {
//                // 订单支付时间
//                ods.setPayTime(new Timestamp(orderList.getPayTime().getTime()));
//                // 支付类型
//                if (orderList.getPayType().equals("1")) {
//                    // 支付宝
//                    ods.setPaymentMethods(PaymentPlatformType.Alipay.getPpType());
//                } else {
//                    // 微信
//                    ods.setPaymentMethods(PaymentPlatformType.WeChatPay.getPpType());
//                }
//            }
//
//            if (orderList.getRefundSn() != null) {
//                // 退款单号
//                ods.setRefundSn(orderList.getRefundSn());
//                // 退款时间
//                ods.setApplyTime(new Timestamp(orderList.getRefundTime().getTime()));
//                // 退款金额
//                ods.setRefundMoney(new BigDecimal(orderList.getRefundAmt()));
//            }
////            String s = ods.toString();
////            MqConsumer mqConsumer = new MqConsumer();
////            mqConsumer.setMsg(s);
////            mqConsumer.setMqid("888");
//            OrderList ol = new OrderList();
//            LambdaUpdateWrapper<OrderList> wrapper = new LambdaUpdateWrapper<>();
//            wrapper.eq(OrderList::getOrderSn, oc.getOrderId());
//            ol.setOrderSn(oc.getOrderId());
//            if (ods.getApplyTime() != null) {
//                if () {
//                }
//                ol.setRefundSn(String.valueOf(wfgIdGenerator.next()));
//            } else {
//                switch (oc.getStatus()) {
//
//                    case "Canceled":
//                        wrapper.set(OrderList::getPayStatus, 7);
//                        wrapper.set(OrderList::getUpdateTime, new Date());
//                        break;
//                    case "Refund":
//                        wrapper.set(OrderList::getPayStatus, 4);
//                        wrapper.set(OrderList::getUpdateTime, new Date());
//                        break;
//                    case "AwaitPackage":
//                        wrapper.set(OrderList::getPayTime, ods.getPayTime());
//                        wrapper.set(OrderList::getPayStatus, 8);
//                        wrapper.set(OrderList::getUpdateTime, new Date());
//                        log.info("修改数据");
//                        break;
//                    case "Finish":
//                        wrapper.set(OrderList::getPayTime, ods.getPayTime());
//                        wrapper.set(OrderList::getPayStatus, 3);
//                        wrapper.set(OrderList::getUpdateTime, new Date());
//                        break;
//                    default:
//                        log.error("订单号:{},订单状态不匹配", oc.getOrderId());
//                        break;
//                }
//            }
//
//            orderListMapper.update(null,wrapper);
//        }
    }

    @Override
    public void updateCupboardState(String orderId) {
        orderComboMapper.updateCupboardState(orderId);
    }
}




